package net.servir.diagnostico.web.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.servir.diagnostico.model.IdentificacionParticipante;
import net.servir.diagnostico.model.PreguntaEncuesta;
import net.servir.diagnostico.model.jsp.JspEncuesta;
import net.servir.diagnostico.service.DiagnosticoService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class EncuestaCalidadController {

	@Autowired
	private DiagnosticoService diagnosticoService;
		
	@RequestMapping("/encuestaCalidad.htm")
	public @ModelAttribute("encuesta")
	JspEncuesta ObtenerEncuesta(HttpServletRequest request,HttpServletResponse response) 
	{
		JspEncuesta obj = new JspEncuesta();
		
		IdentificacionParticipante identParticipante = null;		
		//Obtenemos los datos de la session		
		HttpSession sesion = request.getSession();
		
		if (sesion.getAttribute("participante") == null)
		{
			//TODO: Redirect al inicio de sesion.
		}
		else
			identParticipante = (IdentificacionParticipante)sesion.getAttribute("participante");
				
		obj.setIdent_participante(identParticipante);
		
		Number idParticipante = identParticipante.getId_participante();		
		
		List<PreguntaEncuesta> preguntas = diagnosticoService.obtenerPreguntasEncuesta(idParticipante);
		
		obj.setPreguntas(preguntas);
		
		String accion = request.getParameter("accion");
		String redirect = "";
		if (accion != null && !accion.equals(""))
		{
			//Recuperamos todas las alternativas seleccionadas
			
			for (PreguntaEncuesta preguntaEncuesta : preguntas) {
				String idPreguntaEncuesta = "P"+preguntaEncuesta.getId_pregunta_encuesta().toString();
				if(request.getParameter(idPreguntaEncuesta) != null &&  !request.getParameter(idPreguntaEncuesta).equals(""))
					preguntaEncuesta.setSecuencia_seleccionada(Integer.parseInt(request.getParameter(idPreguntaEncuesta)));
			}		
			
			if (accion.equals("GRABAR"))			
			{
				diagnosticoService.grabarRespuestaEncuesta(idParticipante,preguntas);				
			}			
			String sugerencia = request.getParameter("sugerencia");
			if (sugerencia != null && !sugerencia.equals(""))
				diagnosticoService.grabarSugerenciaEncuesta(idParticipante,sugerencia);

			String necesidad = request.getParameter("necesidad");
			if (necesidad != null && !necesidad.equals(""))
				diagnosticoService.grabarNecesidad(idParticipante,necesidad);

			
			try {
				response.sendRedirect("mensajeFinal.htm");
				
			} catch (Exception e) {
				obj.setMensaje_usuario(e.getMessage());
			}			
			
			
		}
		
		//diagnosticoService.grabarEnvioPrueba(idParticipante );
		//diagnosticoService.calcularPuntaje(Integer.parseInt(codParticipante));
		//diagnosticoService.enviarResultados(Integer.parseInt(codParticipante));		
		return obj;	
	}
}
